home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / pc / LOGIC Apple II 5.25" Library - DOS Part 3 / DOS073.dsk / SATELLITE REAL TIME.bas < prev    next >
BASIC Source File  |  2012-02-16  |  8KB  |  211 lines

  1. 2 D$ = "<CTRL-D>": PRINT D$;"NOMONC,I,O"
  2. 5  HOME 
  3. 10 PI = 3.141592:R = 6371
  4. 15  DIM P(20),IA(20),H(20),OC(20),DM(20),DD(20),DY(20),TH(20),TM(20),TS(20),LG(20),S$(20)
  5. 16  DIM D1(20),D2(20),RO(20),TR(20),LR(20),LX(20),LY(20),A2(20),E2(20)
  6. 20  REM  21-40 CONTAIN DATA FOR EACH SATELLITE 
  7. 21 S$(1) = "RS-1":P(1) = 120.3894:IA(1) = 82.56:H(1) = 1704:DM(1) = 3:DD(1) = 21:DY(1) = 79:OC(1) = 1745:TH(1) = 1:TM(1) = 56:TS(1) = 35:LG(1) = 123.7
  8. 22 S$(2) = "RS-2":P(2) = 120.3925:IA(2) = 82.56:H(2) = 1704:DM(2) = 3:DD(2) = 21:DY(2) = 79:OC(2) = 1745:TH(2) = 2:TM(2) = 26:TS(2) = 00:LG(2) = 134
  9. 23 S$(3) = "P76-5":P(3) = 105.7290:IA(3) = 99.66:H(3) = 1025:DM(3) = 3:DD(3) = 14:DY(3) = 79:OC(3) = 13970:TH(3) = 0:TM(3) = 10:TS(3) = 33:LG(3) = 187
  10. 24 S$(4) = "AO-7":P(4) = 114.9448:IA(4) = 101.60:H(4) = 1460:DM(4) = 3:DD(4) = 21:DY(4) = 79:OC(4) = 19873:TH(4) = 0:TM(4) = 2:TS(4) = 09:LG(4) = 62.6
  11. 25 S$(5) = "AO-8":P(5) = 103.2284:IA(5) = 99.50:H(5) = 872:DM(5) = 3:DD(5) = 21:DY(5) = 79:OC(5) = 5305:TH(5) = 0:TM(5) = 30:TS(5) = 00:LG(5) = 51.5
  12. 49 D$ = "<CTRL-D>"
  13. 50  PRINT "****************************************": PRINT : PRINT  TAB( 3)"AMATEUR SATELLITE REAL TIME PROGRAM": PRINT : PRINT  TAB( 17)"BY K0RZ": PRINT : PRINT "****************************************"
  14. 55  PRINT "THIS PROGRAM WILL CALCULATE THE SUB": PRINT "SATELLITE POINT & THE GROUND STATION'S": PRINT "ANTENNA AZMITH & ELEVATION ALL AS A": PRINT "FUNCTION OF THE REAL TIME CLOCK"
  15. 210  GOSUB 7000: REM  GND COORD
  16. 220  GOSUB 6000: REM  SAT PRINT
  17. 225  HOME 
  18. 230  FOR I = 1 TO 20
  19. 235  IF P(I) <1  THEN  GOTO 1700
  20. 250  GOSUB 8000: REM  REAL TIME
  21. 260  GOSUB 9000: REM  REF DATA
  22. 270  GOSUB 8000
  23. 275 P = P(I):IA = IA(I):H = H(I)
  24. 280 T = TX -TR(I):LG = LR(I)
  25. 285 RO = RO(I) + INT(T/P)
  26. 299  REM  300-390 CALC OF SSP LAT
  27. 300 L1 =  SIN(2 *PI *T/P) * SIN(PI *IA/180)
  28. 305  IF  ABS(L1) > = 1.0  THEN  GOTO 270
  29. 310 L2 =  ATN(L1/ SQR( -L1 *L1 +1.))
  30. 320 L3 = 180. *L2/PI
  31. 330 LX =  INT(L3)
  32. 399  REM  400-490 CALC OF SSP LONG
  33. 400 L4 =  COS(2. *PI *T/P)/ COS(L2)
  34. 405  IF  ABS(L4) > = 1.0  THEN  GOTO 270
  35. 410 L5 =  - ATN(L4/ SQR( -L4 *L4 +1.)) +1.5798
  36. 411 L5 = L5 +PI *T/720.
  37. 420 L6 = 180. *L5/PI
  38. 430 L7 = L6 +LG
  39. 431  IF L7 >360.0  THEN L7 = L7 -360.0
  40. 435 LY =  INT(L7)
  41. 1099  REM  1100-1490 CALC OF AZMITH HEAD
  42. 1100 Q3 = Q1 *PI/180.
  43. 1110 Q4 = Q2 *PI/180.
  44. 1120 L8 = L7 *PI/180.
  45. 1200 C1 =  SIN(L2) * SIN(Q3) + COS(L2) * COS(Q3) * COS(L8 -Q4)
  46. 1205  IF  ABS(C1) > = 1.0  THEN  GOTO 270
  47. 1210 C2 =  - ATN(C1/ SQR( -C1 *C1 +1.)) +1.5708
  48. 1300 B1 = ( SIN(L2) - SIN(Q3) * COS(C2))/( COS(Q3) * SIN(C2))
  49. 1305  IF  ABS(B1) > = 1.0  THEN  GOTO 270
  50. 1310 B2 =  - ATN(B1/ SQR( -B1 *B1 +1.)) +1.5708
  51. 1320 B3 = B2 *180./PI
  52. 1410 Y1 =  SIN(L8 -Q4)
  53. 1420  IF Y1 >0  THEN  GOTO 1450
  54. 1440 A1 = B3: GOTO 1470
  55. 1450 A1 = 360 -B3
  56. 1470 A2 =  INT(A1)
  57. 1499  REM  1500-1590 CALC OF ELEV HEAD
  58. 1500 EL =  ATN(( COS(C2) -(R/(R +H)))/ SIN(C2))
  59. 1510 E1 = EL *180./PI
  60. 1520 E2 =  INT(E1)
  61. 1600 A2(I) = A2:E2(I) = E2:LX(I) = LX:LY(I) = LY:O(I) = RO
  62. 1650  GOSUB 5000: REM  OUTPUT DATA
  63. 1700  NEXT I
  64. 1800  REM  (TURN AROUND POINT)
  65. 1900  GOTO 230
  66. 5000  REM  5000-5999 USED TO PRINT OUTPUT
  67. 5200  FOR J = 1 TO 3
  68. 5210  VTAB (J)
  69. 5220  PRINT "                                        "
  70. 5230  NEXT J
  71. 5300  VTAB (2)
  72. 5320  PRINT  TAB( 5)"SATELLITE STATUS FOR ";D1;"/";D2;"/";DY
  73. 5340  VTAB (5)
  74. 5360  PRINT  TAB( 16)T1;":"T2;":";T3;"    "
  75. 5400  VTAB (8)
  76. 5420  PRINT  TAB( 1)"SAT"; TAB( 8)"ORBIT"; TAB( 16)"LAT"; TAB( 22)"LONG"; TAB( 29)"AZM"; TAB( 36)"ELV"
  77. 5500  VTAB (2 *I +9)
  78. 5530  IF E2(I) > -5  THEN  GOTO 5610
  79. 5550  PRINT S$(I); TAB( 8)O(I); TAB( 16)LX(I); TAB( 22)LY(I); TAB( 29)"---"; TAB( 36)"---"
  80. 5590  GOTO 5700
  81. 5610  PRINT S$(I); TAB( 8)O(I); TAB( 16)LX(I); TAB( 22)LY(I); TAB( 29)A2(I); TAB( 36)E2(I);" "
  82. 5700  REM  CONTINUE
  83. 5990  RETURN 
  84. 6000  REM   6000-6990 USED TO HOLD AND PRINT SATELLITE DATA
  85. 6005  HOME 
  86. 6010  PRINT : PRINT "........................................": PRINT 
  87. 6020  PRINT "THE FOLLOWING SATELLITE DATA IS ALREADY": PRINT "CONTAINED IN THIS PROGRAM"
  88. 6030  PRINT 
  89. 6120  PRINT "SAT"; TAB( 10)"PER(MIN)"; TAB( 22)"INC(DEG)"; TAB( 33)"HGT(KM)"
  90. 6130  PRINT 
  91. 6140  FOR I = 1 TO 20
  92. 6150  IF P(I) <1  THEN  GOTO 6170
  93. 6160  PRINT S$(I); TAB( 9)P(I); TAB( 23)IA(I); TAB( 34)H(I)
  94. 6170  NEXT I
  95. 6180  PRINT 
  96. 6185  PRINT 
  97. 6190  PRINT "SAT"; TAB( 10)"DATE"; TAB( 17)"ORBIT"; TAB( 26)"TIME"; TAB( 35)"LONG"
  98. 6195  PRINT 
  99. 6200  FOR I = 1 TO 20
  100. 6210  IF P(I) <1  THEN  GOTO 6240
  101. 6230  PRINT S$(I); TAB( 8)DM(I);"/";DD(I);"/";DY(I); TAB( 17)OC(I); TAB( 25)TH(I);":";TM(I);":";TS(I); TAB( 35)LG(I)
  102. 6240  NEXT I
  103. 6350  PRINT 
  104. 6360  INPUT "DO YOU WISH TO MODIFY THIS DATA (Y/N) ";Q$
  105. 6370  IF Q$ = "N"  THEN  GOTO 6590
  106. 6375  PRINT 
  107. 6380  PRINT "WHAT IS THE NAME (FROM LIST) IF THE"
  108. 6385  PRINT "SATELLITE WHOSE DATA IS TO BE CHANGED"
  109. 6390  INPUT "I.E.  AO-7  ";Q$
  110. 6400  FOR I = 1 TO 20
  111. 6405 IC = I
  112. 6410  IF Q$ = S$(IC)  THEN  PRINT : GOTO 6420
  113. 6414  NEXT I
  114. 6415  PRINT 
  115. 6416  PRINT  TAB( 10)"SATELLITE NOT FOUND"
  116. 6417  PRINT 
  117. 6418  GOTO 6360
  118. 6420  GOTO 6425
  119. 6425  INPUT "   PERIOD (MINUTES) = ";P(IC)
  120. 6430  INPUT "   INCL ANGLE (DEG) = ";IA(IC)
  121. 6440  INPUT "   HEIGHT (KM) = ";H(IC)
  122. 6450  INPUT "   REFERENCE DATE MONTH = ";DM(IC)
  123. 6460  INPUT "   REFERENCE DATE DAY = ";DD(IC)
  124. 6465  INPUT "   REFERENCE DATE YEAR = ";DY(IC)
  125. 6470  INPUT "   REFERENCE ORBIT NUMBER = ";OC(IC)
  126. 6480  INPUT "   REFERENCE TIME HOURS = ";TH(IC)
  127. 6490  INPUT "   REFERENCE TIME MINUTES = ";TM(IC)
  128. 6500  INPUT "   REFERENCE TIME SECONDS = ";TS(IC)
  129. 6510  INPUT "   REFERENCE DEGREES LONGITUDE = ";LG(IC)
  130. 6530  GOTO 6010
  131. 6590  PRINT 
  132. 6600  INPUT "DO YOU WISH TO ADD TO THIS LIST (Y/N) ";Q$
  133. 6610  IF Q$ = "N"  THEN  GOTO 6990
  134. 6620  FOR I = 1 TO 20
  135. 6625 IC = I
  136. 6630  IF P(I) <1  THEN  PRINT : GOTO 6650
  137. 6632  REM  THE MAX VALUE IF I IS SET HERE
  138. 6633 J = 8
  139. 6634  IF I = J  THEN  PRINT : INVERSE : PRINT "          NO MORE SATELLITES            ": NORMAL : PRINT : GOTO 6010
  140. 6638  NEXT I
  141. 6640  PRINT 
  142. 6650  INPUT "WHAT IS THE NAME OF THE SATELLITE ";S$(IC)
  143. 6660  GOTO 6420
  144. 6990  PRINT : PRINT "........................................": PRINT 
  145. 6995  RETURN 
  146. 7000  REM  7000-7990 USED TO HOLD OR INPUT GROUND STATION INFORMATION
  147. 7110  REM    GND STA LAT IS Q1  
  148. 7120  REM   GND STA LONG IS Q2 
  149. 7130 Q1 = 40:Q2 = 105
  150. 7150  PRINT "........................................"
  151. 7200  PRINT "THE GROUND STATION COORDINATES USED IN ": PRINT "THIS PROGRAM ARE AS FOLLOWS : (DEG)"
  152. 7210  PRINT  TAB( 15)"LAT = ";Q1
  153. 7220  PRINT  TAB( 15)"LONG= ";Q2
  154. 7230  PRINT 
  155. 7250  PRINT "DO YOU WANT DIFFERENT GROUND STATION": INPUT "COORDINATES USED ? (Y OR N) ";Q$
  156. 7300  IF Q$ = "N"  THEN  GOTO 7900
  157. 7350  PRINT 
  158. 7400  INPUT "GROUND STATION LATITUDE (DEG) ? ";Q1
  159. 7405  PRINT 
  160. 7410  INPUT "GROUND STATION LONGITUDE (DEG) ? ";Q2
  161. 7510  PRINT 
  162. 7520  GOTO 7200
  163. 7900  PRINT 
  164. 7990  RETURN 
  165. 8000  REM  8000-8990 USED TO OBTAIN TIME FROM REAL TIME CLOCK
  166. 8010  REM  FOR APPLESOFT WITH DOS
  167. 8090 D3 = 79
  168. 8110  PRINT D$;"IN#4": PRINT D$;"PR#4"
  169. 8120  INPUT " ";T$
  170. 8130  PRINT D$;"PR#0": PRINT D$;"            IN#0"
  171. 8230 MTH$ =  LEFT$(T$,2):DAY$ =  MID$ (T$,4,2)
  172. 8240 D1 =  VAL(MTH$):D2 =  VAL(DAY$)
  173. 8250 HOUR$ =  MID$ (T$,7,2):MINUTE$ =  MID$ (T$,10,2):SEC$ =  MID$ (T$,13,2)
  174. 8260 T1 =  VAL(HOUR$):T2 =  VAL(MINUTE$):T3 =  VAL(SEC$)
  175. 8310 TX = T1 *60 +T2 +T3/60
  176. 8930  REM  D1=REAL TIME MONTH
  177. 8940  REM  D2=REAL TIME DAY
  178. 8950  REM  T1=REAL TIME HOUR
  179. 8960  REM  T2=REAL TIME MIN
  180. 8970  REM  T3=REAL TIME SEC
  181. 8980  REM  TX=REAL TIME TOTAL IN MINUTES
  182. 8990  RETURN 
  183. 9000  REM  9000-9990 IS USED TO CALCULATE THE PRESENT ORBIT DATA
  184. 9005  IF D1 = D1(I)  AND D2 = D2(I)  THEN  GOTO 9990
  185. 9009  VTAB (2 *I +9): PRINT  TAB( 2)"* REFERENCE ORBIT BEING CALCULATED *"
  186. 9010 DM = DM(I):DD = DD(I):DY = DY(I)
  187. 9020 TH = TH(I):TM = TM(I):TS = TS(I)
  188. 9030 P = P(I):OC = OC(I):LG = LG(I)
  189. 9050 TR = 60 *TH +TM +TS/60
  190. 9070 LD = P/1440 *360
  191. 9100  IF DM = D1  AND DD = D2  THEN  GOTO 9200
  192. 9110 TR = TR +P
  193. 9120 OC = OC +1
  194. 9130 LG = LG +LD
  195. 9140  IF LG > = 360  THEN LG = LG -360
  196. 9150  IF TR > = 1440  THEN TR = TR -1440:DD = DD +1
  197. 9160  IF (DM = 2  AND DD = 29)  THEN DM = 3:DD = 1: GOTO 9190
  198. 9170  IF ((DM = 4  OR DM = 6  OR DM = 9  OR DM = 11)  AND (DD = 31))  THEN DM = DM +1:DD = 1: GOTO 9190
  199. 9180  IF DM = 12  AND DD = 32  THEN DM = 1:DD = 1:DY = DY +1 GOTO 9190
  200. 9185  IF DD = 32  THEN DM = DM +1:DD = 1
  201. 9190  GOTO 9100
  202. 9200  IF TX > = TR  THEN  GOTO 9400
  203. 9210 TR = TR -P:OC = OC -1:LG = LG -LD
  204. 9230  IF LG < = 0  THEN LG = LG +360
  205. 9400 RO(I) = OC
  206. 9410 LR(I) = LG
  207. 9420 TR(I) = TR
  208. 9430 D1(I) = DM
  209. 9440 D2(I) = DD
  210. 9990  RETURN 
  211. 30000  END